home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d970.lha / ADM / ARexx / WriteMail.adm < prev   
Text File  |  1993-10-20  |  6KB  |  191 lines

  1.  
  2. /* $VER: WriteMail.adm 1.1 (20.9.93)
  3.  
  4.    Schreiben einer Mail an die akt. ADM-Adresse.
  5.    Zum Benutzen dieses Scripts muß der Editor unten definiert werden.
  6.  
  7.    Hier werden das MessageSystem UMS sowie Befehle von "Stuntzis
  8.    UMS Tools" verwendet. Z-Netz-Mails werden bei diesem Script
  9.    via UUCP-Gate exportiert.
  10.  
  11.    Für eine Erklärung der von diesem Script erkannten EMail-Formate
  12.    siehe Script "SendMails.rexx".
  13.  
  14.    Das Script benötigt die RexxReqTools.library!
  15.  
  16.    HISTORY:
  17.  
  18.    V1.0  [jan]   Erstes Release
  19.    V1.1  [jan]   Abfrage nun mit der RexxReqTools.library
  20.                  per Requester
  21.  
  22.    */
  23.  
  24.  
  25. /*----------------------------------------------------------------------
  26.    DEFINITIONEN
  27. ----------------------------------------------------------------------*/
  28.  
  29. editor  = "C:TTX >NIL: wait"      /* Darf sich nicht vom CLI "ablösen"*/
  30.                                   /* = detach                         */
  31.  
  32. sig1    = "Jan"                      /* Unterschrift                  */
  33.  
  34. sig2    = " "                                            /* Signature */
  35. sig3    = "2:2407/106.5@Fidonet, jan@digit.stgt.sub.org"
  36.  
  37. /*----------------------------------------------------------------------
  38.    HAUPTPROGRAMM: Adresse auslesen, Mail schreiben & schicken
  39. ----------------------------------------------------------------------*/
  40.  
  41. OPTIONS RESULTS
  42.  
  43. call addlib("rexxreqtools.library", 0, -30, 0)
  44.  
  45. GETADDRESS ADM                               /* Hole Adresse */
  46.  
  47. IF ADM.EMail2 ~= "" THEN DO                  /* Wenn EMail2 angegeben */
  48.    SAY("1." ADM.EMAIL1)
  49.    SAY("2." ADM.EMAIL2)
  50.    SAY("Welche EMail-Adresse?")              /* Wählen, welche ... */
  51.    PULL num
  52.    IF num=1 THEN txt = ADM.EMAIL1
  53.    ELSE txt = ADM.EMAIL2
  54. END
  55. ELSE DO
  56.    IF ADM.EMail1 = "" THEN DO                /* Wenn auch nicht EMail1 */
  57.       SAY("Keine EMail-Adresse vorhanden!")  /* Fehler! */
  58.       EXIT
  59.    END
  60.    ELSE txt = ADM.EMAIL1                     /* Sonst EMAIL1 nehmen */
  61. END
  62.  
  63. CALL SendMail
  64.  
  65. EXIT                                         /* Ende */
  66.  
  67.  
  68. /*----------------------------------------------------------------------
  69.    UNTERPROGRAMM: EMail schreiben
  70. ----------------------------------------------------------------------*/
  71.  
  72. SendMail:
  73.    msg = FALSE
  74.  
  75.    IF txt ~= "" THEN DO      /* Wenn überhaupt EMail-Text vorhanden */
  76.  
  77.       pos = POS("=",txt)     /* Wenn mit ZER=, FIDO= oder UUCP= ein- */
  78.                              /*                          getragen... */
  79.  
  80.       IF pos > 0 THEN DO     /* ... Netz herausfinden und von Adresse */
  81.          net = STRIP(SUBSTR(txt,1,pos-1))                  /* trennen */
  82.          adr = STRIP(SUBSTR(txt,pos+1,LENGTH(txt)-pos))
  83.       END
  84.       ELSE DO                /* andernfalls: Herausfinden, welches Netz */
  85.          adr = ""
  86.  
  87.          pos = POS("@Fidonet",txt)   /* Endung "@Fidonet"? */
  88.          IF pos>0 THEN DO
  89.             net = "FIDO"
  90.             adr = STRIP(txt)
  91.          END
  92.  
  93.          pos = POS(".ZER",txt)       /* Endung ".ZER"? */
  94.          IF pos=LENGTH(txt)-3 THEN DO
  95.             net = "ZER"
  96.             adr = STRIP(txt)
  97.          END
  98.  
  99.          IF adr="" THEN DO           /* Ansonsten UUCP */
  100.             net = "UUCP"
  101.             adr = STRIP(txt)
  102.          END
  103.  
  104.       END
  105.  
  106.       IF net="FIDO" THEN DO          /* FIDO: Realname vorhanden? */
  107.          pos = POS(":",adr)
  108.  
  109.                                      /* wenn nicht -> aus ADM-Adresse */
  110.          IF pos < 3 THEN DO
  111.             name = ADM.firstName ADM.lastName
  112.             IF POS("@Fidonet",adr) < 1 THEN adr = adr || "@Fidonet"
  113.          END
  114.          ELSE DO                     /* Sonst Namen herausschneiden */
  115.             pos  = POS("@",adr)
  116.             name = STRIP(SUBSTR(adr,1,pos-1))
  117.             adr  = STRIP(SUBSTR(adr,pos+1,LENGTH(txt)-pos-1)) || "@Fidonet"
  118.          END
  119.  
  120.          SAY "FIDONET: " name "--" adr
  121.          msg = TRUE
  122.       END
  123.  
  124.       IF net="ZER"  THEN DO         /* ZERBERUS: */
  125.          pos = POS("@",adr)
  126.          name = STRIP(SUBSTR(adr,1,pos-1)) /* NAME/ALIAS heraustrennen */
  127.          adr = adr || ".sub.org"           /* .sub.org anhängen */
  128.                                            /* für UUCP-Gate */
  129.          SAY "ZERBERUS:" name "--" adr
  130.  
  131.          msg = TRUE
  132.       END
  133.  
  134.       IF net="UUCP" THEN DO                /* UUCP= angegeben? */
  135.          name = STRIP(ADM.firstName ADM.lastName)
  136.          SAY "USENET:  " name "--" adr
  137.          msg = TRUE
  138.       END
  139.  
  140.       IF msg = FALSE THEN DO               /* Ansonsten: Nachricht ist UUCP */
  141.          name = STRIP(ADM.firstName ADM.lastName)
  142.          /* adr  = adr */
  143.       END
  144.  
  145.  
  146.       /* Message-Erzeugung:
  147.  
  148.          Das Script erstellt eine temporäre Datei, in der der Messagetext
  149.          und für "sumswrite" nötige Schlüsselwörter enthalten sind.
  150.          Diese wird dann ed(it)iert.
  151.          Danach wird - nach einer Sicherheitsabfrage - "sumswrite" gestartet.
  152.  
  153.       */
  154.  
  155.  
  156.       IF ~OPEN(datei,"ram:admtmpmsg","W") THEN DO   /* Ausgabedatei öffnen     */
  157.          SAY "Kann Ausgabedatei nicht öffnen!"
  158.          EXIT
  159.       END
  160.  
  161.       ok = WRITELN(datei,"ToName" name)
  162.       ok = WRITELN(datei,"ToPath" adr)
  163.       ok = WRITELN(datei,"Subject")
  164.       ok = WRITELN(datei,"Group NetMail")
  165.       ok = WRITELN(datei,"Organization ADM-Mail")
  166.       ok = WRITELN(datei,"Attributes")
  167.       ok = WRITELN(datei,"-------------------------------------------------------------")
  168.       ok = WRITELN(datei,"Hallo" ADM.firstname || "!")
  169.       ok = WRITELN(datei," ")
  170.       ok = WRITELN(datei,"Bye,")
  171.       ok = WRITELN(datei,sig1)
  172.       ok = WRITELN(datei,sig2)
  173.       ok = WRITELN(datei,sig3)
  174.  
  175.       ok = CLOSE(datei)                          /* Datei schließen */
  176.  
  177.       cmd = editor "ram:admtmpmsg"
  178.       ADDRESS COMMAND cmd
  179.  
  180.       ans = rtezrequest("Nachricht senden?","_Senden|Abbru_ch","ADM-Rexxscript",,"rtez_defaultresponse=1")
  181.  
  182.       IF ans ~= 0 THEN DO
  183.          cmd = "sumswrite jan jg <ram:admtmpmsg"    /* SUMSWRITE starten */
  184.          ADDRESS COMMAND cmd
  185.       END
  186.       ELSE ans = rtezrequest("Nachricht nicht gesendet.","_OK","ADM-Rexxscript",,)
  187.    END
  188.  
  189. RETURN
  190.  
  191.